﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using TankController.Dominio;

namespace TankController
{
    public partial class UcConfigurarEntradaMF : UserControl
    {
        private FormConfigurar formConfigurar;
        private EntradaDegrau referencia;

        public EntradaDegrau Referencia
        {
            get { return referencia; }
        }

        public UcConfigurarEntradaMF()
        {
            InitializeComponent();
        }

        public UcConfigurarEntradaMF(FormConfigurar formConfigurar)
            : this()
        {
            this.formConfigurar = formConfigurar;
        }

        public void ValidarCampos()
        {
            double parseResultDouble;

            if (!double.TryParse(txtValorReferencia.Text.Replace('.', ','), out parseResultDouble))
            {
                throw new ApplicationException("Valor de referência inválido.");
            }
        }

        public void MontarReferencia()
        {
            double valorReferencia = double.Parse(txtValorReferencia.Text.Replace('.', ','));

            if (rbtReferenciaDegrau.Checked)
            {
                referencia = new EntradaDegrau(valorReferencia);
            }
            else
            {
                throw new ApplicationException("Tipo de referência inválida.");
            }
        }

        public void AtualizarCampos()
        {
            txtValorReferencia.Text = ((Global.Controlador1 as ControladorMalhaFechada).Referencia as EntradaDegrau).ValorAmplitude.ToString();
        }
    }
}
